﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace DistributedGraph.EIGStop
{
    /// <summary>
    /// Message für EIGStop
    /// </summary>
    public class Message : DistributedGraph.IMessage
    {
        #region Attribute
        private List<TreeNode> treeNodes;
        #endregion Attribute

        #region Eigenschaften
        /// <summary>
        /// Gibt die enthaltenen TreeNodes zurück.
        /// (EIGStop selbst macht keine Angaben dazu, ob die Knoten alle einzeln in Nachrichten versendet werden:
        ///  "Process i broadcasts all pairs (x, v)" [Lyn96 S. 110]. Zudem wäre es von außen ohnehin nicht erkennbar.
        ///  Deshalb können diese Paare hier zusammengefasst werden. Und selbst wenn man es streng manthematisch nimmt,
        ///  macht es keinen unterschied und ist einfacher.)
        /// </summary>
        public List<TreeNode> TreeNodes { get { return treeNodes; } }
        #endregion Eigenschaften

        #region Methoden

        /// <summary>
        /// Instanziiert und initialisiert die Klasse.
        /// </summary>
        /// <param name="treeNodes">Die Baumknoten die transportiert werden sollen.</param>
        public Message(List<TreeNode> treeNodes)
        {
            this.treeNodes = treeNodes;
        }
        #endregion Methoden
    }
}
